/**
 * Copyright (C), 2015-2019, bogewang有限公司
 * FileName: BeanTransferUtils
 * Author:   bogewang
 * Date:     2019/9/13 17:10
 * Description: bean转换工具类
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.bogewang.core.bean;

import org.springframework.beans.BeanUtils;

/**
 * 〈bean转换工具类〉
 *
 * @author bogewang
 * @create 2019/9/13
 * @since 1.0.0
 */
public class BeanTransferUtils<E, T> {

    /**
     * dot 转换为DO 工具类
     *
     * @param obj
     * @param doEntity
     * @return
     */
    public static <T> T EToT(Object obj, Class<T> cls) {
        // 判断dto是否为空!
        if (obj == null) {
            return null;
        }
        // 判断DOClass 是否为空
        if (cls == null) {
            return null;
        }
        try {
            T newInstance = cls.newInstance();
            BeanUtils.copyProperties(obj, newInstance);
            // DTO转换DO
            return newInstance;
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * do 转换为DTO 工具类
     *
     * @param dtoEntity
     * @param obj
     * @return
     */
    public static <E> E TToE(Object obj, Class<E> cls) {
        // 判断dto是否为空!
        if (obj == null) {
            return null;
        }
        // 判断DOClass 是否为空
        if (cls == null) {
            return null;
        }
        try {
            E newInstance = cls.newInstance();
            BeanUtils.copyProperties(obj, newInstance);
            // DTO转换DO
            return newInstance;
        } catch (Exception e) {
            return null;
        }
    }
    // 后面集合类型带封装

}